package zisu.netty.practice.netty.buf;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;

/**
 * @Desc: ""
 * @Author: caixiang
 * @DATE: 2020/7/15 10:20
 */
public class NettyByteBuf01 {
    public static void main(String[] args) {
        //创建一个ByteBuffer
        //说明：1.创建对象，该对象包含一个数组arr，是一个byte[10] ;;
        // 2.在netty 的buffer 中不需要filp() 进行翻转（因为底层维护了readIndex 和 writeIndex）
        // 3.通过readindex 和 writeindex 和 capacity。。将buffer分成3个区域（在真实的内存空间中）
        //      0--------------------readindex    已经读取的区域
        //      readindex------------writeindex    可读的区域
        //      writeindex-----------capacity    可写的区域

        ByteBuf byteBuf = Unpooled.buffer(10);
        for(int i=0;i<10;i++){
            byteBuf.writeByte(i);
        }

        //输出
        /*for(int i=0;i<byteBuf.capacity();i++){
            //byteBuf.readByte(); 才会引起readIndex 的向后移  getByte(i) 并不会向后移
            System.out.println(byteBuf.getByte(i));
        }*/

        for(int i=0;i<byteBuf.capacity();i++){
            System.out.println(byteBuf.readByte());
        }


    }
}
